package boot

import (
	"sale-admin/config"
	"sale-admin/config/mysql"
	"sale-admin/config/redis"
	"sale-admin/internal/crond"
	"sale-admin/internal/dal"
	"sale-admin/internal/define"
	"sale-admin/internal/define/lang"
	"sale-admin/internal/migrate"

	sharding "192.168.1.75/go-pkg/db-sharding"
	"192.168.1.75/go-pkg/helper"
	"192.168.1.75/go-pkg/i18n"
	"192.168.1.75/go-pkg/logx"
)

// AppInit 应用初始化
func AppInit() {
	// 解析配置文件
	ParseConfig()
	// 日志初始化
	logx.Init(config.Config.Log, logx.String("service.name", "sale-admin"), logx.String("service.version", define.APPVersion))
	// redis初始化
	redis.RedisInit(config.Config.Redis)
	// uuid初始化
	helper.UUID{}.Init(config.Config.Redis)
	// mysql初始化
	mysql.MysqlInit(config.Config.Mysql)
	// 服务发现初始化
	SvsDisInit()
	// 定时任务初始化
	crond.CrondInit()
	// 数据库检查更新
	migrate.AutoMigrate()
	// i18n初始化
	i18n.LoadLangPack(lang.ErrorCode)
	// 分表初始化
	sharding.InitSharding(mysql.NewDB())
	// 设置默认的db
	dal.SetDefault(mysql.NewDB())
}
